package it.lapomuge.score.android.gui;

import it.lapomuge.score.android.ConnectedDevice;
import it.lapomuge.score.android.R;
import it.lapomuge.score.android.ScoreAndroidActivity;
import it.lapomuge.score.android.voti.Voto;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;

public class GUIAtleta {

	private final ScoreAndroidActivity sa;
	private final ConnectedDevice cd;
	private final Spinner intero;
	private final Spinner decimale;
	private final Button vota;
	private final Button nextAtleta;
	private String prevAtleta;

	public GUIAtleta(ScoreAndroidActivity scoreAndroid, ConnectedDevice connectedDevice) {
		this.sa = scoreAndroid;
		this.cd = connectedDevice;
		sa.setContentView(R.layout.atleta);

		intero = (Spinner) sa.findViewById(R.id.jIntero);
		decimale = (Spinner) sa.findViewById(R.id.jDecimale);
		vota = (Button) sa.findViewById(R.id.jVota);
		nextAtleta = (Button) sa.findViewById(R.id.jnextAtleta);

		ArrayAdapter<String> adapter = new ArrayAdapter<String>(sa, android.R.layout.simple_spinner_item, Voto.getInteri());
		intero.setAdapter(adapter);
		intero.setOnItemSelectedListener(new OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
				ArrayAdapter<String> adapter = new ArrayAdapter<String>(sa, android.R.layout.simple_spinner_item, Voto.values()[arg2].getInteriStr());
				decimale.setAdapter(adapter);
			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {

			}
		});

		vota.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {

				Voto voto = Voto.values()[intero.getSelectedItemPosition()];
				cd.vota(voto.getVoto(), voto.getDecimali()[decimale.getSelectedItemPosition()]);
				vota.setEnabled(false);
				nextAtleta.setEnabled(true);

			}

		});

		nextAtleta.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				nextAtleta();
			}
		});

		nextAtleta();
	}

	protected void nextAtleta() {
		String atleta = cd.nextAtleta();

		final TextView jTxt = (TextView) sa.findViewById(R.id.jAtleta);
		if (atleta == null) {
			jTxt.setText("Nessuna atleta in corso");
			vota.setEnabled(false);
			nextAtleta.setEnabled(true);
		} else if (!atleta.equals(prevAtleta)) {
			prevAtleta = atleta;
			jTxt.setText(atleta);
			vota.setEnabled(true);
			nextAtleta.setEnabled(false);
		} else {
			jTxt.setText("Atleta successivo non connesso!");
			vota.setEnabled(false);
			nextAtleta.setEnabled(true);
		}

	}

}
